package dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;

import entities.Aluguel;
import exceptions.AnoInvalidoException;
import exceptions.CampoVazioException;
import exceptions.DataInvalidaException;
import exceptions.ValorMonetarioInvalidoException;

public interface AluguelDAO {

	public Aluguel abrirCaixaAluguel(String mes, String ano, String vlrInicial, boolean isAberto,
			Connection connection) throws SQLException, CampoVazioException,
			ValorMonetarioInvalidoException, AnoInvalidoException;

	public void cadastrarDespesaAluguel(String categoria, String subcategoria, String descricao,
			String valor, String dataDebito, Connection connection)
	throws SQLException, ValorMonetarioInvalidoException, CampoVazioException, ParseException, DataInvalidaException;

	public double liquidaDebitosAluguel(String ids, String mes, String ano, Connection connection) throws SQLException, ParseException;

	public void atualizaSaldoFinalAluguel(Connection connection, double valor)
	throws SQLException, ParseException;

	public Aluguel recuperaAluguel(Connection connection) throws SQLException;

	public Aluguel fecharCaixaAluguel(Aluguel aluguel, Connection connection) throws NumberFormatException, SQLException, CampoVazioException,
	ValorMonetarioInvalidoException, AnoInvalidoException, ParseException;

	public ResultSet listarDebitosAluguel(String dataLimite,
			Connection connection) throws DataInvalidaException, CampoVazioException, SQLException, ParseException;

}
